package alogrithm.sort;

import java.util.Arrays;

/**
 * 排序算法
 * @author Administrator
 *
 */
public class Sort {
	public static void main(String[] args) {
		Sort s=new Sort();
		
		int data[]=new int[]{8,7,6,4,9,84,234,2,1,1,-9,88,-911};
		s.bubleSort(data);
		
		s.insertSort(data);
	}
	/**8,7,6,4,9
	 * 7,8,6,4,9
	 * 6,8,7,4,9
	 * 4,8,7,6,9
	 * 4,7,8,6,9
	 * 4,6,8,7,9
	 * 4,6,7,8,9
	 * 
	 * 插入排序
	 */
	public void bubleSort(int a[]){
		int la=a.length;
		for(int i=0,j=i+1;i<la;i++){
			int head=a[i];
			while(j<la){
				if(head>a[j]){
					swap(a,i,j);
				}
				j++;
			}
			j=i+1;
		}
		System.out.println("冒泡排序后------------\n"+Arrays.toString(a));
	}
	
	/**
	 * 从后往前插入排序
	 * @param a
	 */
	public void insertSort(int a[]){
		if(a.length<=1){
			return;
		}
		int la=a.length;
		int j;
		int key=0;
		for(int i=1;i<la;i++){
			j=i-1;
			key=a[i];
			while(j>0&&a[j]>a[i]){
				a[i]=a[j];
				a[j]=key;
				j--;
			}
		}
		
		System.out.println("插入排序后------------\n"+Arrays.toString(a));
	}
	
	public void swap(int a[],int i,int j){
		int t=a[i];
		a[i]=a[j];
		a[j]=t;
	}
}
